package dao;

import java.sql.*;
import java.util.*;
import to.ProductoTO;

public class ProductoDAO extends GenericDAO{
    public ProductoDAO(Transaction transacction) {
	super(transacction);
    }
    
    @SuppressWarnings("unchecked")
    public List<ProductoTO> buscarProducto(ProductoTO to, String codAlmacen) throws TransactionException {
        Connection conn;
        List<ProductoTO> list = new ArrayList();
        try {
            int i = 1;
            conn = (Connection) t.getConnection();
            String sqlCall = "{call uspBuscarProducto(?,?,?)}";
            CallableStatement procedure = conn.prepareCall(sqlCall);
            procedure.setString(i++, to.getCProducto());
            procedure.setString(i++, to.getDProducto());
            procedure.setString(i++, codAlmacen);
            ResultSet rs = procedure.executeQuery();

            while (rs.next()) {
                int j=0;
                ProductoTO vo = new ProductoTO(); 
                vo.setCProducto(rs.getString(++j));
                vo.setDProducto(rs.getString(++j));
                vo.setIPrecio(rs.getDouble(++j));
                vo.setPDescuento(rs.getDouble(++j));
                list.add(vo);
            }

            procedure.close();
            conn.close();

        } catch (SQLException e1) {
                throw new TransactionException(e1);
        }
        return list;
    }
}
